#!/usr/bin/env python
# -*-coding:utf-8 -*-

__all__ = ['Obstacle', 'getPosition', 'isDisappeared', 'isExisting',
           'ObstaclesPool', 'add', 'obstacleExistInTheWay']
           
           
class Obstacle(object):
    def __init__(self, timer, map, exist_time, disappear_time, edge, division):
        """
        创建一个障碍物。
        :param timer:
        :param map:
        :param exist_time:
        :param disappear_time:
        :param edge:
        :param division:
        """
        self._timer = timer
        self._map = map
        self._edge = edge
        self._exist_time = exist_time
        self._disappear_time = disappear_time
        self._pos = map.getNodeCoord(edge[0])*(1-division)+map.getNodeCoord(edge[1])*division
    
    def getPosition(self):
        """
        获取本障碍物的位置。
        :return: 本障碍物的位置（Vector对象）。
        """
        return self._pos
        
    def isDisappeared(self):
        """
        判断本障碍物是否已经消失。
        :return: 如果此障碍物已经消失，则返回True，否则返回False。
        """
        return self._timer.getTime() > self._disappear_time
        
    def isExisting(self):
        """
        判断此障碍物是否存在。
        :return: 如果此障碍物正存在，则返回True，否则返回False。
        """
        return self._timer.getTime() <= self._disappear_time and \
               self._timer.getTime() >= self._exist_time
        